The present invention relates to techniques for representing shapes within computer graphics systems.
Bezier curves (which are parameterized polynomials) and ratios of them (Non-Uniform Rational B-splines) called NURBs, are used extensively in computer graphics, rendering and mechanical computer-aided design (MCAD). For example, ship hulls, airplane skins and car bodies are typically defined using two-dimensional and three-dimensional generalizations of Bezier curves and NURBs.
Bezier curves are useful in practice because the shape of the Bezier curve is intuitively linked to the location of control points. Thus, people can manually adjust the location of control points using a computer-based graphical interface to create a curve that approximates a desired shape. At present, much of the design work involving Bezier curves and NURBs involves hand-crafting control points to approximate a desired shape. This can be an extremely tedious and time consuming process, especially in situations where a large number of shapes must be approximated. For example, during the process of designing a scalable font, it is typically necessary to approximate an artist's rendering of each character in the font with a parameterized polynomial so that that characters can be scaled to different sizes. At the moment, this process must be performed manually for each character, because there is presently no automatic way to approximate an arbitrary shape with a closed Bezier curve.